1991. 找到数组的中间位置
1991. 找到数组的中间位置
Similar Question
Solution Tips
方案一: 前缀和
记数组的全部元素之和为 total ,当遍历到第 i 个元素时,设其左侧元素之和为 sum,则其右侧元素之和为 total - nums[i] - sum
. 左右侧元素相等即为 sum = total - nums[i] - sum
,即 2 * sum + nums[i] = total
var findMiddleIndex = function(nums) {
const total = nums.reduce((a, b) => a + b, 0);
let sum = 0;
for (let i = 0; i < nums.length; i++) {
if (2 * sum + nums[i] === total) {
return i;
}
sum += nums[i];
}
return -1;
};